Complex software systems are often difficult to manage due to the large number of possible combinations of configurations settings. For example, different deployments of the same software resource may have different combinations of language settings, security settings, patch set updates (PSUs) and network settings, among other configuration settings. A failure to properly manage deployment configurations may expose a system to various problems including security vulnerabilities and performance degradation.
One approach for managing software configurations is the manual creation of a gold image. According to this approach, a system administrator selects the optimal configuration settings for a group of software deployments and creates a software image (the “gold” image) that includes these configuration settings. Software deployments are then compared to the gold image to identify configuration differences. This approach is effective when a system administrator knows the optimal configurations for each software resource. However, in large and growing environments, the optimal configurations may differ between different deployments of the same software resource, and the current optimal configuration is likely not the future optimal configuration. The system administrator may have limited domain knowledge and bandwidth to determine which configuration settings are optimal and which configuration settings are problematic. As a result, this approach does not scale well to cloud-based applications and other large-scale systems.
The approaches described in this section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section.